/**
* Copyright © 2018 深圳市巨鼎医疗设备有限公司
*/
package com.zl.websocket.service;

/**
 * 用户、应用实例路由关系处理服务
 * @author   Zhouych
 * @Date:    2018年6月28日 下午4:31:10
 * @since    JDK 1.8
 */
public interface RouteService {

	/**
	 * 获取本应用实例唯一名称
	 * @return
	 */
	String getInstanceId();
	
	/**
	 * 应用跑起来时做一些工作
	 */
	void instanceInit();
	
	/**
	 * 根据用户ID获取用户所连接的机器实例
	 * @param userId
	 * @return
	 */
	String getInstanceIdByUserId(String userId);
	
	/**
	 * 用户连接
	 * @param user
	 */
	void userConnect(String userId);
	
	/**
	 * 断开连接
	 * @param user
	 */
	void userDisConnect(String userId);
	
	/**
	 * 清理所有关系-其他实例
	 */
	void clearAll(String instanceId);
	
	/**
	 * 验证实例是否存在
	 * @param channel
	 * @return
	 */
	boolean checkExist(String channel);
}
